package com.gengzp.mq.client.core;

import com.gengzp.mq.client.model.message.MqMessage;

/**
 * @ClassName MqMessageConsumeInterface
 * @Description mq消息消费接口
 * <p> 消息监听类必须使用 @MqListener, 并实现该接口, 定义好消息消费的逻辑, 即可自动监听消息队列 </p>
 * @Author gengzp
 * @Date 2025/9/4 17:31
 */
public interface MqMessageConsumeInterface {

    /**
     * 消费消息
     * <p> 开发者需自行实现该方法, 对消息进行处理 </p>
     * <p> 若消息处理失败, 则需手动抛出异常 </p>
     * <p> 若方法执行完毕, 且未抛出异常, 则表示消费成功, 此时会自动向服务端发送ack确认消息 </p>
     *
     * @param message 消息
     */
    void consumeMessage(MqMessage message) throws Exception;

}
